#!/usr/bin/env python3
"""
留言表迁移脚本
"""
import sys
import os

# 添加项目根目录到Python路径
sys.path.append(os.path.dirname(os.path.abspath(__file__)))

from sqlalchemy import create_engine, text
from app.config import settings
from app.models.message import Message
from app.database import Base

def migrate_messages():
    """创建留言表"""
    try:
        # 创建数据库引擎
        engine = create_engine(settings.database_url)
        
        # 创建留言表
        print("正在创建留言表...")
        Message.__table__.create(engine, checkfirst=True)
        print("✅ 留言表创建成功")
        
    except Exception as e:
        print(f"❌ 创建留言表失败: {e}")

def create_sample_messages():
    """创建示例留言数据"""
    try:
        from app.database import SessionLocal
        
        db = SessionLocal()
        
        # 检查是否已有留言数据
        existing_count = db.query(Message).count()
        if existing_count > 0:
            print("⏭️  留言数据已存在，跳过创建示例数据")
            return
        
        # 创建示例留言
        sample_messages = [
            {
                'name': '张先生',
                'phone': '13800138001',
                'email': 'zhang@example.com',
                'subject': '环境影响评价咨询',
                'message': '我们公司计划建设一个新的生产基地，需要进行环境影响评价，请问贵公司能否提供相关服务？',
                'is_read': False,
                'is_replied': False
            },
            {
                'name': '李女士',
                'phone': '13800138002',
                'email': 'li@example.com',
                'subject': '污染治理工程',
                'message': '我们工厂的废水处理设备需要升级改造，希望了解贵公司的技术方案和报价。',
                'is_read': True,
                'is_replied': True,
                'reply_content': '感谢您的咨询！我们已安排技术专家与您联系，将为您提供详细的技术方案和报价。'
            },
            {
                'name': '王经理',
                'phone': '13800138003',
                'subject': '环境监测服务',
                'message': '我们需要定期的环境监测服务，包括大气、水质、噪声等方面的监测，请提供详细的服务方案。',
                'is_read': True,
                'is_replied': False
            },
            {
                'name': '陈总',
                'phone': '13800138004',
                'email': 'chen@example.com',
                'subject': '项目合作咨询',
                'message': '我们有一个大型环保项目，希望与贵公司合作，请问是否可以安排面谈？',
                'is_read': False,
                'is_replied': False
            },
            {
                'name': '刘工程师',
                'phone': '13800138005',
                'subject': '技术咨询',
                'message': '关于土壤修复技术，我们遇到了一些技术难题，希望能得到贵公司专家的指导。',
                'is_read': True,
                'is_replied': True,
                'reply_content': '我们的土壤修复专家团队将为您提供专业的技术支持，已安排相关人员与您对接。'
            }
        ]
        
        for message_data in sample_messages:
            message = Message(**message_data)
            db.add(message)
        
        db.commit()
        print(f"✅ 创建了 {len(sample_messages)} 条示例留言")
        
    except Exception as e:
        print(f"❌ 创建示例留言失败: {e}")
        if 'db' in locals():
            db.rollback()
    finally:
        if 'db' in locals():
            db.close()

if __name__ == "__main__":
    print("开始迁移留言表...")
    migrate_messages()
    print("\n创建示例留言数据...")
    create_sample_messages()
    print("\n迁移完成！")
